Computer users typically use user agent applications such as web browsers to access documents and other resources that are available over a computer network, e.g., the World Wide Web. Resources available on the World Wide Web (also referred to simply as “the Web”) are generally stored in documents called web pages. Such web pages are identified by a Uniform Resource Identifier (URI), usually a Uniform Resource Locator (URL), which identifies the web page uniquely and provides the information necessary for locating and accessing the web page.
A web browser is a computer program that, when executed on a client computer, enables the client computer to read and display web pages. A web browser includes a user interface component for addressing a particular server on a network, and designating a particular document (e.g., a Web page) to be obtained from the addressed server. Using the Hypertext Transfer Protocol (HTTP), a Web browser may fetch the designated documents from the server. Also, a Web browser includes a component for displaying the content of Web pages.
Web pages may be stored on a component connected to the network (e.g., the Web), which is called a web server. Generally, a web server receives and responds to HTTP requests from a user agent or web browser. There are existing methods for configuring a particular user agent on a client computer to operate as a web server for receiving and responding to HTTP requests from other user agents. However, when a user agent runs as a web server, it is necessary to provide information regarding which information or services can be accessed from that web server and how they can be accessed. Additionally, when a user runs a web server in a home network, the network typically includes a device that acts as a firewall, and/or Network Address Translation (NAT) device, that needs to be configured separately. Typically, the user will need to open ports and enable port forwarding to a local computer in order for people outside the firewall to be able to access the server. Consequently, even if a user is able to provide content from a web server that runs as part of his or her browser application, there is currently no way to avoid considerable configuration tasks.
Consequently, it would be advantageous to reduce or eliminate the configuration tasks that otherwise must be performed in order to give other users access to shared content or services, and to make this content or these services visible or discoverable to those other users.